﻿using System;

namespace Iorz.DomainSearch.Utils.Tools
{
    /// <summary>
    /// 日期操作帮助类
    /// </summary>
    public class DateHelper
    {
        /// <summary>
        /// 获取指定时间距离1970年的时间戳（精确到毫秒，13位长度）
        /// </summary>
        /// <param name="date">指定时间，默认为当前日期</param>
        /// <returns></returns>
        public static long GetTimestamp4Millisecond(DateTime? date = null)
        {
            if (!date.HasValue) date = DateTime.Now;

            var startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(0x7b2, 1, 1, 0, 0, 0, 0));
            return ((date.Value.Ticks - startTime.Ticks) / 0x2710L);
        }

        /// <summary>
        /// 获取指定时间距离1970年的时间戳（精确到秒，10位长度）
        /// </summary>
        /// <param name="date">指定时间，默认为当前日期</param>
        /// <returns></returns>
        public static long GetTimestamp4Second(DateTime? date = null)
        {
            if (!date.HasValue) date = DateTime.Now;

            var startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(0x7b2, 1, 1, 0, 0, 0, 0));
            return ((date.Value.Ticks - startTime.Ticks) / 0x989680L);
        }
    }
}
